Diagrama de Clases (Elemento, Clase - Atributos)
Los atributos son características estructurales de una clase, que representan información almacenada por cada instancia. Su correcta definición es esencial para la integridad, claridad y reutilización del modelo de clases UML (OMG, 2017).
1. Definición de Atributo
Un atributo es una propiedad estructural de una clase, especifica un rango de valores que cada instancia de la clase puede almacenar. Los atributos se representan en el segundo compartimento del rectángulo de la clase, debajo del nombre (Rumbaugh et al., 2007).
2. Sintaxis y Notación
-
Visibilidad:
+
público-
privado#
protegido
-
Formato básico:
visibilidad nombre: Tipo [= valorPorDefecto] {propiedades}
Ejemplo
Figura
Ejemplo de la Representación de Atributos
Nota:
- Los atributos derivados se indican con
/
antes del nombre (ejemplo:/disponible
). - Los atributos estáticos se subrayan o se anotan con
{static}
.
3. Tipos y Propiedades de los Atributos
3.1 Tipo
Tipo | Explicación |
---|---|
Tipo | Puede ser un tipo primitivo (int , double , boolean , etc.) u otra clase definida en el modelo. |
3.2 Propiedades
Propiedad | Explicación |
---|---|
Valor por defecto | Puede especificarse a continuación de un signo igual = . |
Multiplicidad | Indica cuántos valores puede almacenar el atributo. Se muestra entre corchetes tras el tipo (por ejemplo, telefono: String[*] para una lista de teléfonos) (OMG, 2017). |
Atributos derivados | Calculados a partir de otros atributos o asociaciones; se representan con el símbolo / (por ejemplo, /disponible: boolean ). |
Atributos estáticos | Compartidos por todas las instancias de la clase; se subrayan o se indica {static} . |
4. Ejemplo
Figura
Ejemplo de Atributos: Estático y Derivado
5. Buenas Prácticas
- Usar visibilidad privada (
-
) para atributos y exponer acceso mediante métodos. - Documentar atributos complejos o con lógica derivada.
- Nombrar atributos de manera clara y consistente.
- Definir la multiplicidad cuando sea relevante (listas, colecciones).
6. Ejercicio Práctico
Modelar la clase Producto
con:
-
Atributos privados:
id
(int)precio
(double)stock
(int)
-
Atributo derivado:
disponible
(boolean)
Debe ser verdadero sistock > 0
.
-
Atributo estático:
totalProductos
(int)
Representa la cantidad total de objetosProducto
creados.
-
Método público:
actualizarStock(cantidad: int)
Modifica el valor destock
sumando la cantidad indicada (puede ser positiva o negativa).
Solución
Figura
Ejercicio Resuelto